package com.shengzai.rdd

import org.apache.spark.rdd.RDD
import org.apache.spark.{SparkConf, SparkContext}

object Demo22WenTI {
  def main(args: Array[String]): Unit = {

    val conf = new SparkConf()
    conf.setAppName("app")
    conf.setMaster("local")

    val sc = new SparkContext(conf)

    val studentsRDD: RDD[String] = sc.textFile("data/students.txt")


    /**
     * spark写代码注意事项
     * 1、在算子内不能修改算子外的一个普通变量，改了也不会生效
     *
     */
    var count = 0
    println(count)

    val mapRDD: RDD[Unit] = studentsRDD.map(line => {
      //算子内的变量是算子外变量的一个副本
      //和算子外的变量没有关系了
      //所以在算子内修改算子外的一个变量，在算子外不会生效
      count += 1
      println(count)
    })

    mapRDD.count()

    println(count)

    /**
     * 2、在算子内不能使用RDD，算子不能嵌套使用
     */

    //    studentsRDD.foreach(line => {
    //      studentsRDD.foreach(println)
    //    })


  }

}
